1. Field of the Invention
The present invention relates to a communication system, including a plurality of terminals, for performing communication among these terminals and, more particularly, to an ATM communication system in an ATM (Asynchronous Transfer Mode) and a process migration method in the ATM communication system.
2. Description of the Related Art
An ATM (Asynchronous Transfer Mode) attracts attention as a technique aiming at increasing the speed of transmission/switching technique. The ATM is a technique in which all pieces of information are carried by fixed-length short packets called cells to be transferred to aim at packaging hardware for packet exchange, thereby make it easy to transmit/switch information at a high speed.
The ATM is regarded as “promised solution” of a future B-ISDN (Broadband aspects of Integrated Services Digital Network). For this reason, study and development for applying the ATM technique to various communication systems are actively performed in recent years. For example, a so-called ATM-LAN in which the ATM technique is applied to not only a public network operated by a carrier but also a network, i.e., local area network (LAN), using a restricted area, e.g., one floor of an office to improve inter-operability with a public network, or a method of applying the ATM technique to a so-called CATV network which presents communication services to a restricted area are developed.
In the ATM communication system using the ATM technique, before communication, a so-called connection is set between terminals to communicate with each other. When the terminals to communicate with each other sends a cell to the communication system, the identifier of the connection is written in the header portion of the cell. The communication system refers to the header portion of the cell to transfer the cell along the connection to which the cell belongs, thereby transferring the cell to a desired terminal. In the ITU-T standards, the identifier of the connection in an ATM layer is called a VPI/VCI.
In this manner, in the ATM communication system, communication is performed by using a connection. For this reason, an ATM switch constituting the ATM communication system has a routing tag table for holding information indicating a specific output port to which a cell belonging the connection set on each input port is transferred and the value of a new VPI/VCI used when the cell belonging to the connection is sent from the ATM switch. Connection setting in the ATM layer is performed by setting the routing tag table on the ATM switch through which the connection passes to be a desired value.
The ATM communication system performs communication by setting a connection in advance as described above. Desired communication quality can be advantageously given to each terminal by allocating the bandwidth of each physical link to the connection in advance. However, the ATM communication system has the following problem.
A conventional ATM communication system cannot efficiently perform a multi-media application due to the following problem.
FIG. 18 shows the arrangement of an ATM-LAN serving as an example used to explain the problem. This ATM-LAN is constituted such that terminals #1 to #5 (P021 to P025) are connected to each other by hubs #1 to #5 (P011 to P015). Physical link pairs P031 to P039 are arranged to connect the hubs and terminals to each other in order to realize full duplex communication. Physical links such as optical fibers or UTPs provide unidirectional information transfer, and are used as pairs.
In addition, the terminal #1 (P021) has a file #1 (P041), the terminal #2 (P022) has a file #2 (P042), and, similarly, the terminal #5 (P025) has a file #5 (P045).
In a conventional LAN such as an ethernet, a communication bandwidth on a coaxial cable is shared by connections. However, in an ATM-LAN, CAC (Connection Admission Control) which is unique to the ATM-LAN is performed before communication is started, a communication bandwidth is exclusively allocated to each connection. For this reason, in the conventional LAN, a communication bandwidth allocated to a connection changes due to the operation of other processes. In the ATM-LAN, since communication bandwidths allocated to connections does not change due to the operation of other processes, communication which assures QoS such as to read data from a file at a constant speed can be performed. On the other hand, in a conventional LAN, a process using the LAN can always send a message. In contrast to this, in the ATM-LAN, when communication bandwidths are not allocated by the CAC, communication cannot be performed. For this reason, in consideration of execution of applications using communication bandwidths and a resource such as files, when the applications distributed on the ATM-LAN are executed, the following problem is posed.
This problem will be described with reference to the ATM-LAN shown in FIG. 18.
A process A executed on the terminal #1 (P021) assures the file #1 (P041) and transfers it to the terminal #3 (P023). In addition, a process B executed on the terminal #2 (P022) refers to the contents of the file #1. When the processes A and B are executed simultaneously, the following may occur.
The process A opens the file #1 (P041) first. On the other hand, the process B obtain all the communication bandwidths on physical links P036 and P037. In this state, the process A tries to obtain a route to the file #3 (P043) and the communication bandwidths on the physical links P036, P033, P034, and P038. However, at this time, since all the communication bandwidths of the physical link P036 has been assured by the process B. The process A fails to obtain the communication bandwidths. The process B tries to open the file #1 (P041). However, since the file #1 (P041) has been opened by the process A, the process B fails to open the file. When the processes A and B are slept in this state, a dead-lock state occurs.
Dead-lock of such a type occurs due to conflict of the usage requests of the processes A and B between the file #1 (P041) and the communication bandwidth on the physical link P036. More specifically, the dead-lock of such a type occurs such that the CAC is executed to exclusively give the communication bandwidths to a certain process, and is called CAC dead-lock. When communication bandwidths are allocated by Q. 2931, each process cannot recognize that the dead-lock state is caused conflict on the communication bandwidths on the physical link P036, and the CAC dead-lock cannot be canceled.
In a general communication system, due to a defective terminal, it may be desired to migrate a process executed on the terminal to another terminal. Such migration of a process from one terminal to another terminal is generally called process migration. In the conventional ATM communication system, this process migration is performed by the following procedure.
FIG. 31 shows a procedure of process migration on the conventional ATM communication system. In this procedure shown in FIG. 31, terminals #1 (X041), #2 (X042), . . . , #n (X04n) which are connected to each other by the ATM communication system. In the conventional ATM communication system, a Q. 2931 terminated portion X01 which terminates Q. 2931 protocol for setting connections is present, a signaling VC#i (X02i) is set between the Q. 2931 terminated portion X01 and the terminals X04i. The signaling VC#i (X02i) is used to cause each terminal to specify the terminal of a callee or destination for the Q. 2931 terminated portion X01. The Q. 2931 terminated portion X01 sets a connection between a terminal which requests connection setting and a terminal specified by the connection setting request to use the connection for communication between the terminals. Although an ATM switch and physical links constituting the ATM communication system are omitted in FIG. 31 to avoid cumbersome illustration, it is considered that the ATM switch and physical links are present at a portion where the above VCs are set.
In the example shown in FIG. 31, a process #1 (X051) is executed on the terminal #(X041), and a process #2 (X052) is executed on the terminal #2 (X042). The process #1 (X051) communicates with the process #2 (X052) through a connection X03. In this state, it is considered that the process #2 (X052) operated on the terminal #2 (X042) is migrated to the terminal #n (X04n).
FIG. 32 shows a state after the migration. In order to perform the communication between the process #1 (X051) and the process #2 (X052), a new connection Y02 is set between the terminal #1 (X041) and the terminal #n (X04n). A connection Y03 set to perform the communication between these processes before migration is released. In order to migrate the process #2 (X052) from the terminal #2 (X042) to the terminal #n (X04n), a connection Y01 is set between the terminal #2 (X042) and the terminal #n (X04n). Upon completion of migration, the connection Y01 is released.
FIG. 33 shows a migration procedure performed in a conventional ATM communication system to shift the state shown in FIG. 31 to the state shown in FIG. 32.
When the terminal #2 (X042) tries to migrate the process #2 (X052) executed on the terminal #2 (X042), the terminal #2 (X042) requests the Q. 2931 terminated portion X01 to set the connection Y01 (step Z01). When the Q. 2931 terminated portion X01 receives the connection setting request, the Q. 2931 terminated portion X01 writes a proper value in the routing tag table of the ATM switch in the ATM system to set the connection (step Z02), and notifies the terminal #n (X04n) that the connection is set (step Z03). When the terminal #n (X04n) can receive the newly set connection, after the terminal #n (X04n) performs a process for receiving the connection, the terminal #n (X04n) notifies the Q. 2931 terminated portion X01 that the process for receiving the connection is performed (step Z04). When the Q. 2931 terminated portion X01 receives the connection receivable notification from the terminal #n (X04n), the Q. 2931 terminated portion X01 notifies the terminal #2 (X042) of connection setting completion (step Z0S). In this manner, since the connection Y01 is set between the terminal #2 and the terminal #n, the terminal #2 (X042) communicates with the terminal #n (X04n) by using the connection Y01 to transfer the process #2 (X052) from the terminal #2 (X042) to the terminal #n (X04n) (step Z06). At the same time, the terminal #2 (X042) uses a connection X03 to notify the terminal #1 (X041) that the process #2 (X052) executed on the terminal #2 (X042) is migrated to the terminal #n (X04n), i.e., that process migration is performed (step Z07).
When the terminal #1 (X041) is notified of process migration as described above, the terminal #1 (X041) temporarily stops execution of the process #1 (X051) and, at the same time, requests the Q. 2931 terminated portion X01 to set the connection between the terminal #1 (X041) and the terminal #n (X04n) serving as a migration destination (step Z08). When the Q. 2931 terminated portion X01 receives the request to set a connection, the Q. 2931 terminated portion X01 rewrites the routing tag table of the ATM switch on the route of the connection with a proper value to set the requested connection (step Z09). Upon completion of connection setting, the Q. 2931 terminated portion X01 notifies the terminal #n (X04n) that the connection is set (step Z10). When the terminal #n (X04n) is notified of connection setting, after the terminal #n (X04n) performs a predetermined process for receiving the connection, and notifies the Q. 2931 terminated portion X01 that reception of the connection is completed (step Z11).
When the terminal #n (X04n) notifies the Q. 2931 terminated portion X01 of the reception of the connection, the Q. 2931 terminated portion X01 notifies the terminal #1 (X041) which performs the connection setting request that the connection setting is completed (step Z12).
Since the connection Y02 between the terminal #1 (X041) and the terminal #n (X04n) is set by the above procedure, the terminal #1 (X041) uses the connection X03 and the connection Y02 to notify the terminal #2 (X042) and the terminal #n (X04n) that execution of the process #1 (X051) and the process #2 (X052) can be restarted (step Z13). By using this notification as a trigger, execution of the process #1 (X051) on the terminal #1 (X041) and execution of the process #2 (X052) on the terminal #n (X04n) are restarted.
On the ATM communication system, the connection X03 which has not been used in the communication between the process #1 (X051) and the process #2 (X052) and the connection Y01 used in only migration are still set. In order to release these connections, after the execution of the process #1 (X051) and the process #2 (X052) are restarted, the terminal #1 (X041) and the terminal #2 (X042) request the Q. 2931 terminated portion X01 to release the connection X02 and the connection Y01, respectively.
A sequences for releasing the connection X02 are shown in steps Z14, Z15, Z16, Z17, and Z18 in FIG. 33 (45), and a sequence for releasing the connection Y01 are shown in steps Z19, Z20, Z21, Z22, and Z23. Each sequence performs connection release according to the following sequence. The terminal of a connection release request sender sends a connection release request to the Q. 2931 terminated portion X01. When the Q. 2931 terminated portion X01 receives the connection release request, the Q. 2931 terminated portion X01 notifies the other terminal which performs communication by using the connection of connection release. The terminal notified of connection release executes a predetermined process executed in connection release, and then notifies the Q. 2931 terminated portion X01 that the connection release is received. When the connection release is received, the Q. 2931 terminated portion X01 changes the routing tag table of the ATM switch on the route of the connection to be released into a proper value, thereby releasing the connection. Upon completion of this operation, the Q. 2931 terminated portion X01 notifies the terminal which requires the connection release that the connection release is completed.
The above operation is a process which is executed when the process #2 (X052) is migrated from the terminal #2 (X042) to the terminal #n (X04n).
As is apparent from the above description, when process migration is to be executed on the conventional ATM communication system, connection setting/release must be performed many times. In addition, since the connection setting/release is executed by the Q. 2931 terminated portion X01, the throughput of the Q. 2931 terminated portion X01 must be increased to rapidly execute process migration, and a time required for rewriting the routing tag of the ATM switch must be shortened. However, when these measures are executed, the cost of the ATM communication system disadvantageously increases.
In addition, it should be noted that, as the values of the VPI/VCI used for identifying the connection Y02 by the process #1 (X051) and the process #2 (X052), i.e., the values of the VPI/VCI used when these processes send/receive a cell, values set when the connection X03 is used cannot be directly used. In the convention ATM communication system, the VPI/VCI for identifying a connection on each physical link is managed by the Q. 2931 terminated portion X01, and the Q. 2931 terminated portion X01 notifies the VPI/VCI at the terminal point of the connection Y02 to the terminal #n in connection setting report at reporting connection setup in step Z10 and to the terminal #1 in connection setting completion in step Z12. The terminals #1 (X041) and #n (X04n) must use the notified VPI/VCI to identify message to the processes #1 (X051) and #2 (X052), thereby performing routing to a required process. From the terminal #n viewpoint, this fact means that it must be recognized that the set connection is new connection setting according to process migration in step Z10 in which connection setting is reported. This recognition can be executed by the following manner. That is, information indicating that the connection is new connection setting according to process migration is written as user-user information serving as one information element of a Q. 2931 message, and the terminal in which the connection is set refers to the user-user information to perform matching between the notified VPI/VCI and the process using the VPI/VCI.
However, a change in VPI/VCI used before/after migration means that, when migration occurs, not only the migrated process but also a process whose execution is restarted on the same terminal refer to the information element of the message sent from the Q. 2931 terminated portion X01, the connections used when these processes input and output information must be reconnected. More specifically, the processes must refer to the message sent from the Q. 2931 terminated portion X01 to perform any process to all the processes related to the process in which migration occurs. For this reason, a time required for migration is more increased.
As described above, in the conventional ATM communication system, the CAD dead-lock occurs and a multi-media application cannot be efficiently executed. In addition, when process migration is to be performed, access to the Q. 2931 terminated portion must be performed in a complex pattern to set and release a large number of connections. In order to perform process migration at a high speed, the throughput of the Q. 2931 terminated portion X01 must be increased, and a time required for rewriting the routing tag of the ATM switch must be shortened. For this reason, the cost of the ATM switch disadvantageously increases. In addition, in order to realize high-speed process migration, it is a fault that a large number of processes must be performed to various processes in migration.